home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / util / boot / BlizKick.lha / BlizKick / bkapi.lha / bkapi / test.c < prev   
C/C++ Source or Header  |  2000-01-15  |  2KB  |  111 lines

  1. /* BlizKick EXTRES allocation API functions - example.
  2.  
  3.    Written by Harry "Piru" Sintonen, Jan 2000.
  4.    Public Domain.
  5. */
  6.  
  7. #include <exec/types.h>
  8. #include <exec/memory.h>
  9.  
  10. #define __USE_SYSBASE 1
  11.  
  12. #include <proto/exec.h>
  13. #include <proto/dos.h>
  14.  
  15. #include "bkapi.h"
  16.  
  17. /* protos */
  18. int __saveds main(void);
  19.  
  20. #ifdef __SASC
  21. void __regargs __chkabort(void);
  22. void __regargs _CXBRK(void);
  23.  
  24. struct ExecBase *SysBase;
  25. struct DosLibrary *DOSBase;
  26. #endif
  27.  
  28. int __saveds main(void) {
  29.   ULONG ver, avail, largest, size;
  30.   APTR mem;
  31.   struct Resident *res = NULL;
  32.  
  33. #ifdef __SASC
  34.   SysBase = *((struct ExecBase **)(4L));
  35.   if ( (DOSBase = (struct DosLibrary *) OpenLibrary("dos.library", 37L))
  36.        == NULL ) return 0;
  37. #endif
  38.  
  39.   Printf("bkapi example by Harry \"Piru\" Sintonen Jan 2000\n\n");
  40.  
  41.   ver = er_init();
  42.  
  43.   if (ver) {
  44.  
  45.     Printf("bkapi version %ld found!\n",ver);
  46.  
  47.     largest = er_availmem(MEMF_LARGEST);
  48.     if (largest != 0xFFFFFFFF) {
  49.       avail = er_availmem(0);
  50.  
  51.       Printf("bkapi EXTRES buffer memory available: %ld bytes largest: %ld bytes\n",
  52.               avail, largest);
  53.  
  54.       size = largest;
  55.       mem = er_allocmem(size, MEMF_CLEAR);
  56.       if (mem) {
  57.         Printf("er_allocmem(%ld, MEMF_CLEAR) = 0x%08lx\n", size, mem);
  58.  
  59.         /*Wait(0x0f000);*/
  60.  
  61.         er_free(mem, size);
  62.         Printf("er_free(0x%08lx, %ld)\n", mem, size);
  63.  
  64.         size = 1234;
  65.         mem = er_allocvec(size, MEMF_CLEAR);
  66.         if (mem) {
  67.           Printf("er_allocvec(%ld, MEMF_CLEAR) = 0x%08lx\n", size, mem);
  68.  
  69.           /*Wait(0x0f000);*/
  70.  
  71.           er_freevec(mem);
  72.           Printf("er_vec(0x%08lx)\n", mem);
  73.  
  74.           er_lock();
  75.           while ( (res = er_nextresident(res)) ) {
  76.             Printf("resident: 0x%08lx name: %s idsting: %s\n",
  77.                    res, res->rt_Name, res->rt_IdString);
  78.           }
  79.  
  80.           if ( (res = er_findresident("EXTRES Handler")) ) {
  81.             Printf("er_findresident(\"EXTRES Handler\") = 0x%lx\n", res);
  82.           }
  83.  
  84.           er_unlock();
  85.  
  86.         } else {
  87.           Printf("er_allocvec(%ld, MEMF_CLEAR) failed!\n", size);
  88.         }
  89.  
  90.       } else {
  91.         Printf("er_allocmem(%ld, MEMF_CLEAR) failed!\n", size);
  92.       }
  93.  
  94.     } else {
  95.  
  96.       Printf("BlizKick EXTRES buffer memheader INSANE!!\n");
  97.  
  98.     }
  99.  
  100.   } else {
  101.  
  102.     Printf("BlizKick EXTRES buffer API not found!\n");
  103.  
  104.   }
  105.  
  106. #ifdef __SASC
  107.   CloseLibrary( (struct Library *) DOSBase);
  108. #endif
  109.   return 0;
  110. }
  111.